package com.zlkj.ssm.shop.common.tools;

import java.io.StringWriter;
import java.util.Map;

import freemarker.cache.StringTemplateLoader;
import freemarker.template.Configuration;
import freemarker.template.Template;

/**
 * 模板数据转换工具
 * 
 */
public class FreemarkerTemplateUtil {

	/**
	 * templateStr中的${key}被input里面的value值替换
	 * 
	 * @param input
	 *            传入的数据 key-value
	 * @param templateStr
	 *            模板代码,${key}......
	 * @return
	 */
	public static String freemarkerProcess(Map<?, ?> input, String templateStr) {
		try {
			String templateName = "content";
			StringTemplateLoader stringLoader = new StringTemplateLoader();
			stringLoader.putTemplate(templateName, templateStr); // StringTemplateLoader放入模板的名字和代码

			Configuration cfg = new Configuration(Configuration.VERSION_2_3_26);
			cfg.setTemplateLoader(stringLoader);
			Template template = cfg.getTemplate(templateName);

			StringWriter writer = new StringWriter();
			template.process(input, writer); // input(map类型)传进来的数据 放入template
												// 变成writer输出
			return writer.toString();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}
}
